home *** CD-ROM | disk | FTP | other *** search
/ s-gikan2.maizuru-ct.ac.jp / s-gikan2.maizuru-ct.ac.jp.zip / s-gikan2.maizuru-ct.ac.jp / pub / ncvc352a_install.exe / {app} / scripts / change_axes.pl < prev    next >
Perl Script  |  2005-08-11  |  2KB  |  101 lines

  1. #! /usr/bin/perl
  2.  
  3. #  change_axes.pl Version 1.2
  4.  
  5. #  ì└òWÄ▓é≡ò╧è╖é╖éΘâXâNâèâvâgüB                    #
  6.  
  7. #  NCâvâìâOâëâÇÆåé╔                                #
  8. #  (INDEX -Y)üA(INDEX +Y)üA(INDEX -X)üA(INDEX +X)  #
  9. #  éóé╕éΩé⌐é╠âRâüâôâgé¬éáéΩé╬üAXYÄ▓é≡é╗éΩé╝éΩ      #
  10. #  [-X]ZÄ▓üAXZÄ▓üAYZÄ▓üA[-Y]ZÄ▓é╔ò╧è╖é╖éΘ          #
  11.  
  12. # éóé╕éΩé╠âRâüâôâgéαé╚éóÅΩìç
  13. ####################################################
  14. # XYÄ▓é≡
  15. #  [-X]ZÄ▓é╔ò╧è╖é╡é╜éóÅΩìçüEüEüE  1
  16. #  XZÄ▓é╔ò╧è╖é╡é╜éóÅΩìçüEüEüE     2
  17. #  YZÄ▓é╔ò╧è╖é╡é╜éóÅΩìçüEüEüE     3
  18. #  [-Y]ZÄ▓é╔ò╧è╖é╡é╜éóÅΩìçüEüEüE  4
  19. # æ╬ë₧é╖éΘÉöÄÜé≡$mode= é╠îπé╔É▌ÆΦé╡é─é¡é╛é│éó
  20.  
  21. $mode= 2;
  22.  
  23. # èYôûé╖éΘâRâüâôâgé¬NCâvâìâOâëâÇÆåé╔éáéΘÅΩìçé═
  24. # $mode= ê╚ë║é┼É▌ÆΦé╡é╜ÉöÄÜé═û│Äïé│éΩé▄é╖
  25. ####################################################
  26.  
  27.  
  28. %puramai= ('-',1,'+',2);
  29. %index_XY= ('X',1,'Y',0);
  30. %axes_comment_hash= (1,'[-X]Z',2,'XZ',3,'YZ',4,'[-Y]Z');
  31. %address_hash= ('X',0,'I',1,'Y',2,'J',3,'Z',4);
  32. %heimen_hash= (1,18,2,18,3,19,4,19);
  33. %kaiten_hash= (2,3,3,2);
  34.  
  35. @henkan_address= ('X','I','Z','K','Y',
  36. '','','Z','K','Y',
  37. 'Y','J','Z','K','X',
  38. 'Y','J','Z','K','X');
  39. @henkan_fugou= (1,1,0,0,0,
  40. 0,0,0,0,1,
  41. 0,0,0,0,0,
  42. 1,1,0,0,1);
  43.  
  44. ($pre_file,$out_file)= ($ARGV[0],$ARGV[1]);
  45. open(IN,$pre_file);
  46. while(<IN>){
  47.     push(@input,$_);
  48. }
  49. close(IN);
  50.  
  51. for(@input){
  52.     if(/\(\s*INDEX\s*([\-\+])([XY])\s*\)/){
  53.         $mode= $puramai{$1} + ($index_XY{$2} * 2);
  54.         last;
  55.     }
  56. }
  57.  
  58. for(@input){
  59.     if(/G17/){
  60.         $G17_flag= 1;
  61.         last;
  62.     }
  63. }
  64.  
  65. open(OUT,">$out_file");
  66.  
  67. print OUT '(change XY to ' . $axes_comment_hash{$mode} . ')' . "\n";
  68.  
  69. if($G17_flag != 1){ print OUT 'G'.$heimen_hash{$mode}."\n"; }
  70. for(@input){
  71.     if(/^\s*N?\d*\s*\(/){ print OUT; }
  72.     else{
  73.         if($mode == 2 or $mode == 4){
  74.             if(/(G0*)([23])(\D)/g){ $_= $`.$1.$kaiten_hash{$2}.$3.$'; }
  75.             if(/G41/){ $_= $`.G42.$'; }
  76.             elsif(/G42/){ $_= $`.G41.$'; }
  77.         }
  78.         if(/G17/){ $_= $`.G.$heimen_hash{$mode}.$'; }
  79.  
  80.         while(/([XIYJZ])(\-?)(\d+\.?\d*)/g){
  81.             print OUT $`;
  82.             $_= $';
  83.  
  84.             $hyou_No= ($mode - 1)*5 + $address_hash{$1};
  85.             $new_address= $henkan_address[$hyou_No];
  86.             $address_fugou= $henkan_fugou[$hyou_No];
  87.  
  88.             if($new_address eq ''){ print OUT $&; }
  89.             elsif($address_fugou == 0){ print OUT $new_address.$2.$3; }
  90.             else{
  91.                 if(($2 eq '-') or ($3 == 0)){ print OUT $new_address.$3; }
  92.                 else{ print OUT $new_address.'-'.$3; }
  93.             }
  94.         }
  95.         print OUT;
  96.     }
  97. }
  98.  
  99. close(OUT);
  100.  
  101.